package com.sg.dto.biz.app.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc ImplementExaReportTaskAndCalcCurAndAnceStdDataComReqDto
 * @使用场景
 */
@Data
public class ImplementExaReportTaskAndCalcCurAndAnceStdDataComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 数据计算正常与异常场景 NORMAL_SCENE:正常场景 ABNORMAL_SCENE:异常场景 REVISE_ABNORMAL_SCENE:修订异常场景
     */
    @NotNull(message = "数据计算正常与异常场景不能为空")
    @ApiModelProperty("数据计算正常与异常场景")
    private String dataCalcNormalAbnormal;

    /**
     * 状态业务操作类型 AUTO_ORDER:状态自动更新指令 OVERDUE_SUB_REPORT_TASK_SUB_TO_EVA:111逾期-提交汇报任务（待汇报转评价中） OVERDUE_SUB_REPORT_TASK_SUB_TO_EXA:逾期-提交汇报任务（待汇报转审核中） OVERDUE_SUB_REPORT_TASK_SUB_TO_SUC:逾期-提交汇报任务（待汇报转已成功） OVERDUE_EVA_REPORT_TASK_EVA_TO_EXA:逾期-评价汇报任务（评价中转审核中） OVERDUE_EVA_REPORT_TASK_EVA_TO_SUC:逾期-评价汇报任务（评价中转已成功） OVERDUE_EXA_REPORT_TASK_EXA_TO_SUC:逾期-审核汇报任务（审核中转已成功） OVERDUE_EXA_REPORT_TASK_EXA_TO_FAIL:逾期-审核汇报任务（审核中转已失败） OVERDUE_CANCEL_REPORT_TASK_EVA_TO_SUB:逾期-撤销汇报任务（评价中转待汇报） OVERDUE_CANCEL_REPORT_TASK_EXA_TO_SUB:逾期-撤销汇报任务（审核中转待汇报） OVERDUE_REJECT_REPORT_TASK_EVA_TO_SUB:逾期-驳回任务（评价中转待汇报） OVERDUE_REJECT_REPORT_TASK_EXA_TO_SUB:逾期-驳回任务（审核中转待汇报） AUTO_REPORT_AUTO_EXECUTE:自动汇报自动执行指令 ARRANGE_SIGN_WORK_TASK:安排待签收工作任务 ARRANGE_NO_SIGN_WORK_TASK:安排无需签收工作任务 CONFIRM_SIGN_WORK_TASK:确认签收工作任务 UPDATE_WORK_TASK_DONE:更新进度 100 完成工作任务 UPDATE_WORK_TASK_SCHEDULE:更新工作任务进度小于100 LABOUR_VOID_WORK_TASK:人工作废工作任务 WORK_TASK_LABOR_ADVANCE_START:工作任务人工提前开始 WORK_TASK_LABOR_DELAY_START:工作任务人工延后开始 AUTO_ANA_NOT_AT_THE_REPORT_TASK_ONG:自动分析待汇报任务（未开始转进行中） AUTO_GEN_REPORT_TASK:自动生成汇报任务（待汇报-空转未开始） AUTO_GEN_REPORT_TASK_ONGOING:自动生成汇报任务（待汇报-空转进行中） AUTO_ANA_SUBMIT_TO_SUC:自动分析进行中汇报任务（待汇报转已成功） SUB_REPORT_TASK_SUB_TO_EVA:提交汇报任务（待汇报转评价中） SUB_REPORT_TASK_SUB_TO_EXA:提交汇报任务（待汇报转审核中） SUB_REPORT_TASK_SUB_TO_SUC:提交汇报任务（待汇报转已成功） CANCEL_REPORT_TASK_EVA_TO_SUB:撤销汇报任务（评价中转待汇报） CANCEL_REPORT_TASK_EXA_TO_SUB:撤销汇报任务（审核中转待汇报） REJECT_REPORT_TASK_EVA_TO_SUB:驳回任务（评价中转待汇报） REJECT_REPORT_TASK_EXA_TO_SUB:驳回任务（审核中转待汇报） SUB_REPORT_TASK_SUB_OVERDUW_TO_SUC:提交汇报任务（已逾期转已成功） EVA_REPORT_TASK_EVA_TO_EXA:评价汇报任务（评价中转审核中） EVA_REPORT_TASK_EVA_TO_SUC:评价汇报任务（评价中转已成功） EXA_REPORT_TASK_EXA_TO_SUC:审核汇报任务（审核中转已成功） EXA_REPORT_TASK_EXA_TO_FAIL:审核汇报任务（审核中转已失败） INITIATE_QUESTION_QUESTIONABILITY:发起问题待解决 111EXA_REPORT_TASK_EXA_TO_FAIL:111审核汇报任务（审核中转已失败） AUTO_ANA_SUBMIT_TO_OVERDUE:自动分析逾期任务（待汇报转已逾期） AUTO_ANA_EVA_TO_OVERDUE:自动分析逾期任务（评价中转已逾期） AUTO_ANA_EXA_TO_OVERDUE:自动分析逾期任务（审核中转已逾期） AUTO_ANA_OVERDUE_TO_FAIL:自动分析失败任务（已逾期转已失败） LABOUR_SHELVE_QUESTION:人工暂搁置问题 LABOUR_REJECTED_QUESTION:人工拒绝问题 LABOUR_SUSPENDED_QUESTION:人工挂起问题 LABOUR_CLOSED_QUESTION:人工关闭问题 LABOUR_CHANGE_QUESTIONABILITY_QUESTION:人工转问题待解决 LABOUR_RESOLVED_QUESTION:人工解决问题 QUESTION_AUTO_ORDER:问题自动更新指令 LABOUR_CHANGE_QUESTIONABILITY_OVERTIME_QUESTION:人工转超时问题待解决 SOLVE_PROBLEM_QTA_TO_OTHER:待解决或已超时问题转其他状态 OTHER_STATUS_PROBLEM_TO_SOLVE:其他状态问题转待解决 OTHER_STATUS_PROBLEM_TO_OVERTIME:其他状态问题转已超时 EVA_REPORT_TASK:评价汇报任务（评价中）
     */
    @NotNull(message = "任务转成功状态业务操作类型不能为空")
    @ApiModelProperty("任务转成功状态业务操作类型")
    private String statusBizOptType;

    /**
     * 计算与刷新财务数据类型 APPROVE_CALC:审核并计算 APPROVE:只审核 CALC:只计算
     */
    @NotNull(message = "计算与刷新财务数据类型不能为空")
    @ApiModelProperty("计算与刷新财务数据类型")
    private String calcAndRefreshDataType;

    /**
     * 审核的计算场景 PLAN_TARGET_CALC:规划目标计算 PLAN_FINACE_UPDATE:规划财务更新 PLAN_TARGET_AND_FINACE_CALC:规划目标与财务计算
     */
    @NotNull(message = "审核的计算场景不能为空")
    @ApiModelProperty("审核的计算场景")
    private String approveCalcScene;

    /**
     * 审核通过或失败操作类型 APPROVE:审核通过 AUDIT_FAILURE:审核失败
     */
    @NotNull(message = "审核通过或失败操作类型不能为空")
    @ApiModelProperty("审核通过或失败操作类型")
    private String examineOptType;

    /**
     * 任务ID
     */
    @ApiModelProperty("任务ID")
    private String taskId;

    /**
     * 周期阶段资料记录ID
     */
    @ApiModelProperty("周期阶段资料记录ID")
    private String cycleStageDataId;

    /**
     * 被评对象目标周期ID
     */
    @NotNull(message = "被评对象目标周期ID不能为空")
    @ApiModelProperty("被评对象目标周期ID")
    private String evaObjTargetCycleId;

    /**
     * 归属周期ID
     */
    @NotNull(message = "归属周期ID不能为空")
    @ApiModelProperty("归属周期ID")
    private String cycleId;

    /**
     * 关联目标内容ID
     */
    @NotNull(message = "关联目标内容ID不能为空")
    @ApiModelProperty("关联目标内容ID")
    private String targetCycleContentId;

    /**
     * 关联目标内容类型编码 TRUE:是 FALSE:否
     */
    @NotNull(message = "关联目标内容类型编码不能为空")
    @ApiModelProperty("关联目标内容类型编码")
    private String targetCycleContentTypeCode;

    /**
     * 角色标识
     */
    @ApiModelProperty("当前操作人小圈子角色标识")
    private String roleCode;

    /**
     * 冗余评价模板ID
     */
    @NotNull(message = "冗余评价模板ID不能为空")
    @ApiModelProperty("冗余评价模板ID")
    private String evaluationTemplateId;

}
